Typically, a test engineer develops a test to test operation of a unit, system or software file under controlled conditions. The test engineer interested in developing test programs often needs to interface with an instrument to test the instrument itself, use the instrument to test a unit under test, or incorporate live measured data from the instrument into a test. Another example of a test is the verification and validation of a system modeled in software. In such a scenario, a system designer often models a physical system or component in software to explore design ideas and parameters. A test may be used to verify different design iterations meet specific design requirements that must be satisfied. To create such a test system, test engineers use different techniques. For example, a test engineer may interact with the instrument directly without using a user interface or without using an additional computer to interface with the instrument. As another example, a test engineer may interact with the instrument directly using a user interface or using an additional computer to interface with the instrument. Such an interaction, however, is manually intensive and requires significant amount of time for a test engineer to write a test program, with no technique to automate the process.
As a further example, a test engineer may use a computing environment to determine how to optimally configure the instrument for a test. This conventionally involves selecting an instrument, ensuring that the computing environment can communicate with the instrument, iterating through various test configurations (e.g., various communication command sequences between the computing environment and the instrument), and determining the desired test configuration to use for the test by verifying the results of the various test configurations, either through visual inspection or by analysis.
Once a desired test configuration has been determined, a test engineer may attempt to incorporate this set up into a test environment. However, this step is not always seamless due to disparate tools being used by the computing environment and the test environment and/or limitations of the computing environment and the test environment. As a result, the test engineer must manually recode or re-implement the desired test configuration in the test environment.